Wireless and cellular communication technologies have seen dramatic improvements over the past few years. Cellular service providers now offer users a wide array of services, higher usage limits and attractive subscription plans. Wireless dongles and embedded wireless modem cards allow users to use tablet computers, netbooks and laptops to access wireless Internet protocol (IP) and data services through the cellular networks. Internet-enabled smart phones, tablets and gaming consoles have become essential personal accessories, connecting users to friends, work, leisure activities and entertainment. Users now have more choices and expect to have access to content, data and communications at any time, in any place. As more users utilize these services, telecommunication system operator networks must expand to meet the increase in user demand, support the array of new services and provide fast, reliable communications. This expansion has greatly increased the complexity of wireless and cellular networks, and the efficient routing and management of signalling traffic is becoming an ever more challenging task.
The various embodiments provide methods, devices and systems for enabling communications between multiple instances of components in a telecommunications network. The various embodiments provide protocol agnostic interfaces that allow communications between source and destination nodes in a telecommunication system operator network. Routing and load-balancing decisions may be made dynamically based on a context and content of the information being communicated. Messages being communicated may be opened and the information contained therein used to make intelligent connection management and control/rules routing decisions. Calls may be made to external systems requesting additional information for a specific message being communicated. Information from external systems may be used to modify the contents of the information being communicated or to aid in routing and/or load balancing operations within the operator's network. Information specific to a particular network node, protocol, application, message or message type may be stored in an internal memory and referenced for future routing and/or load balancing operations. Routing and load balancing algorithms may be updated as internal/external data changes.
The various embodiments include methods of communicating information in a network, including receiving in a first server a first message associated with an entity, the first message encoding information, performing an operation on certain information included in the first message that is associated with the entity to identify a first data repository in which information associated with the first message or the entity is to be stored, wherein the first data repository is one of a plurality of data repositories, storing information extracted from the first message in the identified first data repository, receiving a second message associated with the entity, the second message encoding information, performing the same operation on the same certain information included in the second message that is associated with the entity to identify the first data repository in which information associated with the first message or the entity is stored, and using information related to the first message or the entity from the first data repository, wherein using information includes adding, retrieving, updating or deleting information. In an embodiment, performing an operation on certain information included in the first message that is associated with the entity to identify the first data repository includes performing at least one of a modulus and a hash operation on the specific information included within the message. In a further embodiment, the operation performed on certain information included in messages results in storing information extracted from a plurality of messages related to a plurality of different entities among the plurality of data repositories in a distributed manner. In a further embodiment, receiving a second message associated with the entity encoding information includes receiving the second message in a second server different from the first server that received the first message. In a further embodiment, replicating the data stored in the identified first data repository in a second data repository such that the second data repository is used when the first data repository is unavailable. In a further embodiment, the data repositories include a session store.
Further embodiments include a system for communicating information in a network, including a plurality of servers, a plurality of data repositories, and a network coupling the plurality of servers to the plurality of data repositories and enabling the plurality of servers to receive messages from one or more source components within the network, wherein each of the plurality of servers is configured with server-executable instructions to perform operations including receiving a first message associated with an entity from the one or more source components, performing an operation on specific information within the receive first message corresponding to the entity associated with the first message in order to identify a specific one of the plurality of data repositories in which to store information related to the entity or the first message, storing information extracted from the first message in the identified specific one of the plurality of data repositories, receiving a second message associated with the entity encoding information, performing the same operation on the same certain information included in the second message that is associated with the entity to identify the same specific one of the plurality of data repositories in which information associated with the first message or the entity is stored, and using information related to the first message or the entity from the specific one of the plurality of data repositories, wherein using information includes adding, retrieving, updating or deleting information. In an embodiment, each of the plurality of servers is configured with server-executable instructions to perform operations such that performing an operation on specific information within the received first message corresponding to the entity associated with the first message in order to identify a specific one of the plurality of data repositories includes performing at least one of a modulus and a hash operation on the specific information included within the message. In a further embodiment, each of the plurality of servers is configured with server-executable instructions to perform operations such that performing an operation on specific information within the received first message corresponding to the entity associated with the first message in order to identify a specific one of the plurality of data repositories results in storing information extracted from a plurality of messages related to a plurality of different entities among the plurality data repositories in a distributed manner. In a further embodiment, each of the plurality of servers is configured with server-executable instructions to perform operations such that performing an operation on specific information within messages corresponding to the entity associated with the messages may be performed on any one of the plurality of servers and result in the same one of the plurality of data stores being identified for storing or accessing information related to a particular entity. In a further embodiment, each of the plurality of servers is configured with server-executable instructions to perform operations further including replicating the data stored in the plurality of data repositories in a manner that ensures that data stored in a first one of the plurality of data repositories is replicated in a second one of the plurality of data repositories, and each of the plurality of servers is configured with server-executable instructions to perform operations such that performing an operation on specific information within a received message corresponding to the entity associated with the received message will identify the second one of the plurality of data repositories in the event the first one of the plurality of data repositories is unavailable. In a further embodiment, each of the plurality of servers is configured with server-executable instructions to perform operations such that replicating the stored data includes replicating a session store. In a further embodiment, the plurality of servers includes one or more pairs of dynamic context routers, with each pair of dynamic context routers including at least one dynamic context router core. In a further embodiment, each dynamic context router core is connected to a pair of data repositories, wherein the data repositories are deployed in an active-hot standby configuration. In a further embodiment, each dynamic context router core operates in an active configuration.
Further embodiments include a non-transitory server-readable storage medium having stored thereon server executable instructions configured to cause a server to perform operations including receiving in a first server a first message associated with an entity, the first message encoding information, performing an operation on certain information included in the first message that is associated with the entity to identify a first data repository in which information associated with the first message or the entity is to be stored, wherein the first data repository is one of a plurality of data repositories, storing information extracted from the first message in the identified first data repository, receiving a second message associated with the entity encoding information, performing the same operation on the same certain information included in the second message that is associated with the entity to identify the first data repository in which information associated with the first message or the entity is stored, and using information related to the first message or the entity from the first data repository, wherein using information includes adding, retrieving, updating or deleting information. In an embodiment, the stored server executable instructions are configured to cause a server to perform operations such that performing an operation on certain information included in the first message that is associated with the entity to identify the first data repository includes performing at least one of a modulus and a hash operation on the specific information included within the message. In a further embodiment, the stored server executable instructions are configured to cause a server to perform operations such that the operation performed on certain information included in messages results in storing information extracted from a plurality of messages related to a plurality of different entities among the plurality data repositories in a distributed manner. In a further embodiment, the stored server executable instructions are configured to cause a server to perform operations further including replicating the data stored in the identified first data repository in a second data repository, wherein performing the operation on the certain data in messages will identify the second data repository in the event the first data repository is unavailable. In a further embodiment, the stored server executable instructions are configured to cause a server to perform operations such that replicating the stored data includes replicating a session store.